package com.ctshk.rpc.train.service;

import com.ctshk.common.dto.Result;
import com.ctshk.rpc.train.dto.es.MainDataStationCacheDTO;
import com.ctshk.rpc.train.dto.h5.HomeTrainH5DTO;
import com.ctshk.rpc.train.dto.h5.TrainProductH5DTO;
import com.ctshk.rpc.train.dto.h5.TrainProductSeatH5DTO;
import com.ctshk.rpc.train.dto.pc.TrainProductDetailPcDTO;
import com.ctshk.rpc.train.req.CacheSetReq;
import com.ctshk.rpc.train.req.TrainAppQueryReq;
import com.ctshk.rpc.train.req.TrainDetailAppQueryReq;
import com.ctshk.rpc.train.req.TrainSeatAppQueryReq;

import java.util.List;

/**
 * <p>
 * 火车票产品表 APP服务类
 * </p>
 *
 * @author 彭柳霖
 * @since 2021-03-11
 */
public interface ITrainProductAppAndPcService {


    Result trainCacheInit();

    Result trainCacheUpdateByTime();

    Result trainCacheUpdateById(List<Long> ids);

    Result remainderNumberUpdate(CacheSetReq req);

    Result<HomeTrainH5DTO> hotLineQuery();

    Result<List<TrainProductH5DTO>> reservationQuery(TrainAppQueryReq req);

    Result<TrainProductSeatH5DTO> seatQuery(String productCode);

    Result<List<TrainProductSeatH5DTO>> reservationQueryPc(TrainAppQueryReq req);

    Result<List<MainDataStationCacheDTO>> query(String stationName);

    Result<TrainProductDetailPcDTO> queryDetail(TrainDetailAppQueryReq req);

    Result stationInit();

    Result<TrainProductSeatH5DTO> seatQueryWithAli(TrainSeatAppQueryReq req);

    Result<TrainProductDetailPcDTO> queryDetailWithAli(TrainDetailAppQueryReq req);
}
